package cn.s1995.sloth.bizs.annotation;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * RedisLock
 *
 * @Author Lex
 * @Description redis分布式锁注解
 * @Date 2023/11/21 15:50
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RedisLock {

    /**
     * 锁名称
     */
    String name() default "";

    /**
     * key 支持spel表达式
     */
    String key() default "";

    /**
     * 过期时间(默认5秒)
     *
     * @return 轮询锁的时间
     */
    int expire() default 5;

    /**
     * 超时时间单位
     *
     * @return 秒
     */
    TimeUnit timeUnit() default TimeUnit.SECONDS;
}
